package Modelo;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.apache.xerces.parsers.DOMParser;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;

import com.sun.org.apache.xml.internal.serialize.XMLSerializer;


public class PersistidorDePartidas {
	private static final long serialVersionUID = 1L;
	
	public static void guardarPartida(String nombreArchivo,Partida partida ) throws IOException, ParserConfigurationException
	{
	    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
	    DocumentBuilder loader = factory.newDocumentBuilder();
        Document doc = loader.newDocument();

        
        doc.appendChild(partida.toXml(doc));
        
        XMLSerializer serializer = new XMLSerializer();
        
        com.sun.org.apache.xml.internal.serialize.OutputFormat outFormat = new com.sun.org.apache.xml.internal.serialize.OutputFormat();

       
        outFormat.setVersion("1.0");
        outFormat.setIndenting(true);
        outFormat.setIndent(4);
        
        serializer.setOutputFormat(outFormat);
        serializer.setOutputCharStream(
          new java.io.FileWriter(nombreArchivo));
        serializer.serialize(doc);
	}
	
	public static Partida cargarPartida(String nombreArchivo) throws IOException, ClassNotFoundException
	{
		DOMParser parser = new DOMParser();

		try {
		    parser.parse(nombreArchivo);

		} catch (SAXException se) {
		    se.printStackTrace();
		} catch (IOException ioe) {
		    ioe.printStackTrace();
		}

		Document docXml = parser.getDocument();
		
		return new Partida(docXml.getDocumentElement());

	}
	
}
